/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 17655
 * Date: 2024-11-04
 * Time: 22:50
 */
public class test3 {
    /*
    LeetCode 203 快乐数
    快乐数」 定义为：

    对于一个正整数，每一次将该数替换为它每个位置上的数字的平方和。
    然后重复这个过程直到这个数变为 1，也可能是 无限循环 但始终变不到 1。
    如果这个过程 结果为 1，那么这个数就是快乐数。
     */

    public boolean isHappy(int n) {
        int slow = n;
        int fast = getNext(n);
        while(fast!=1 && slow != fast){
            slow = getNext(slow);
            fast = getNext(getNext(fast));
        }
        return fast==1;
    }

    //进行数字平方相加操作
    public int getNext(int n){
        int totalSum=0;
        while(n>0){
            int d = n%10;
            n/=10;
            totalSum = totalSum+d*d;
        }
        return totalSum;
    }
}
